#ifndef _STRUCTURE_H
#define _STRUCTURE_H

///////////////////////////////////////////////////////////////////////////
//																		 //
//	Author:		Michael Mozdzierz										 //
//	Date:		11/01/2014												 //
//	Purpose:	Define a structure. Structure is the base class for all  //
//				buildings and implaments basic buildings behavior. 		 //
//				Things like logic for building, creating units and 		 //
//				showing menus to the player								 //
//																		 //
///////////////////////////////////////////////////////////////////////////

#include "../GameObject.h"
#include "../../IInteractable.h"

class Structure : public GameObject, public IInteractable
{
public:
	// Creates a new instance of structure
	Structure(void);
	virtual ~Structure(void);

	// update the structure
	virtual void Update(float dt) override;

	// draw the structure
	virtual void Draw(void) override;	
	
	// a callback for when this object has been interacted with
	virtual void Interact(void) override;

	// the distance someone has to be to be able to interact with this object
	virtual float getRange(void) const override;

	// the position of this object
	virtual Vector3 getLocation(void) const override { return position; }
};

#endif